import { ConfigEnv, loadEnv, UserConfig } from 'vite';
import { createVitePlugins } from './build/vite/plugins';
import proxy from './build/vite/proxy';
import { wrapperEnv } from './build/utils';
import { fileURLToPath, URL } from 'node:url';
import { cssConfig } from './build/vite/css';

console.log(fileURLToPath(new URL('./src/assets/images', import.meta.url)));
// https://vitejs.dev/config/
export default ({ command, mode }: ConfigEnv): UserConfig => {
	const isBuild = command === 'build';
	const root = process.cwd();
	const env = loadEnv(mode, root);
	const viteEnv = wrapperEnv(env);

	return {
		resolve: {
			alias: {
				'@': fileURLToPath(new URL('./src', import.meta.url)),
				'@img': fileURLToPath(new URL('./src/assets/images', import.meta.url)),
			},
		},
		// plugins
		plugins: createVitePlugins(viteEnv, isBuild),

		// css
		css: cssConfig(),

		// server
		server: {
			hmr: { overlay: false }, // 禁用或配置 HMR 连接 设置 server.hmr.overlay 为 false 可以禁用服务器错误遮罩层
			// 服务配置
			port: 3002, // 类型： number 指定服务器端口;
			open: false, // 类型： boolean | string在服务器启动时自动在浏览器中打开应用程序；
			cors: false, // 类型： boolean | CorsOptions 为开发服务器配置 CORS。默认启用并允许任何源
			host: '0.0.0.0', // IP配置，支持从IP启动
			proxy,
		},
		build: {},
	};
};
